package controllers

import (
	"crypto/md5"
	"encoding/hex"
	"xiaomi_demo/models"
)

// md5加密
func EncryMd5(s string) string {
	ctx := md5.New()
	ctx.Write([]byte(s))
	return hex.EncodeToString(ctx.Sum(nil))
}

// 基础序列化器
type Response struct {
	Status int         `json:"status"`
	Data   interface{} `json:"data"` // 使Response结构体能灵活地返回各种类型的数据
	Msg    string      `json:"msg"`  // 表示响应的通用消息
	Error  string      `json:"error"`
	/* 标签 (json:"..."): 标签用于指定如何将结构体字段序列化为JSON格式*/
}

// TokenData 带有token的Data结构
type TokenData struct {
	User  interface{} `json:"user"`  // 该空接口用于存储用户的详细信息或简化版本
	Token string      `json:"token"` // 用于存储身份验证令牌
}

type User struct {
	ID       uint   `json:"id" form:"id" example:"l"`                    // 用户ID
	UserName string `json:"user_name" form:"user_name" example:"FanOne"` // 用户名
	Status   string `json:"status" form:"status"`                        // 用户状态
	CreateAt int64  `json:"create_at" form:"create_at"`                  // 创建
}

// BuildUser序列化用户
func BuildUser(user models.User) User {
	return User{
		ID:       uint(user.Id),
		UserName: user.Username,
		CreateAt: user.AddTime,
		// Unix()方法将其转换为Unix时间戳（从1970年1月1日00:00:00 UTC到现在的秒数）
	}
}
